package org.aileen.springbook.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

@AllArgsConstructor
public enum StatusEnum {
    //3,定义枚举对象
    DELETED(0, "已删除"),
    NORMAL(1, "可借阅"),
    FORBIDDEN(2, "不可借阅");

    //1.定义枚举类的属性
    @Getter
    private int code; // 状态码

    @Getter
    private String name; //描述状态

    //2.通过上面的@AllArgsConstructor注解,可以自动生成一个带有所有属性的构造方法

    //通过code获取枚举对象状态
    public static StatusEnum getNameByCode(int code){
//        switch(code){
//            case 0: return DELETED;
//            case 1: return NORMAL;
//            case 2: return FORBIDDEN;
//        }
//        return null; // 如果没有匹配的状态码，返回null

        //上面的这种也可以写成for循环形式
        for(StatusEnum statusEnum : StatusEnum.values()){
            if(statusEnum.getCode() == code){
                return statusEnum;
            }
        }
        return null; // 如果没有匹配的状态码，返回null
    }
}
